The disclosed embodiments relate to the field of memory management and, specifically, to techniques for providing enhanced error correction of memory devices.
Variable retention time (VRT) of dynamic random-access memory (DRAM) devices drastically affects the scalability of such devices. VRT refers to the variable length of time in which a given DRAM cell can retain its value. This retention time varies during runtime. Thus, a given DRAM cell cannot be presumed to maintain a constant value during runtime. Additionally, the length of time that the same DRAM cell retains its value cannot be presumed. The problems of VRT continue to increase as the feature size (i.e., transistor size) of DRAM is reduced.
Various techniques have been implemented to address this deficiency. The primary technique in use by current systems is to refresh the contents of memory periodically. Periodically, a DRAM device will read its contents and write the data back to the cells (referred to as “refreshing”). In some devices, before writing back the data, errors may be corrected using an error-correcting code (ECC) (referred to as “scrubbing”). The period in which refreshing or scrubbing is performed can be fixed or may be determined dynamically based on observing the characteristics of the memory.
While the above refreshing and scrubbing system overcomes the problems of VRT, it introduces additional negative side effects. First, more frequent refreshes/scrubs reduce the throughput of the memory device and increase the power consumption of the memory device. Second, refreshing maintains erroneous data. If the data read during a refresh is already corrupted, the refresh procedure will simply persist the corrupted data. Further, during scrubbing, if multiple errors exist, only one may be corrected resulting in an uncorrectable error and system failure. Third, while scrubbing can generally correct one error, uncorrectable errors (i.e., more than one error) are becoming more critical due to the heavy use of memory in many systems (especially in server-based systems).
Thus, there exists a need in the state of the art to overcome the problem of VRT in memory devices while reducing or eliminating the deficiencies of existing refreshing/scrubbing techniques.